home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / Me-Mz / MH Power Scripts v1.3.cpt / MH Power Scripts v1.3 / card_3733.txt < prev    next >
Text File  |  1988-05-06  |  9KB  |  302 lines

  1. -- card: 3733 from stack: in.3
  2. -- bmap block id: 0
  3. -- flags: 4000
  4. -- background id: 2663
  5. -- name: Super Find
  6.  
  7.  
  8. -- part 1 (button)
  9. -- low flags: 00
  10. -- high flags: 0004
  11. -- rect: left=283 top=29 right=66 bottom=322
  12. -- title width / last selected line: 0
  13. -- icon id / first selected line: 8538 / 8538
  14. -- text alignment: 1
  15. -- font id: 0
  16. -- text size: 12
  17. -- style flags: 0
  18. -- line height: 16
  19. -- part name: SuperFind: Version 1.1
  20. ----- HyperTalk script -----
  21. on copyright
  22.  
  23.   -- SuperFind, Copyright by Mac Help Co., January 1988
  24.   -- by Chris Hostetter, Mac Help Co., 1800 East Market Street
  25.   -- Long Beach, CA  90805, (213) 428-7414
  26.   --      The script for this button is copyrighted and may not be
  27.   --      used without the written permission of the author (above).
  28.  
  29. end copyright
  30.  
  31.  
  32. on mouseUp
  33.   Global  LastField, OncePerCard
  34.   Global SuperFindName, SearchCommands, Searchstring, SearchStart
  35.   Global SearchTimesFound, FindType, OriginalID
  36.  
  37.   get the selection
  38.   if it is not empty then put it into SearchString
  39.  
  40.   put the name of the target into SuperFindName
  41.   set hilite of SuperFindName to true
  42.  
  43.   put "Chars" into FindType
  44.   put empty into SearchLimit
  45.   ask "Find Word(s)?   Hold option key for limits." with SearchString
  46.   set hilite of SuperFindName to false
  47.   if it is empty then
  48.     put 0 into searchtimesfound
  49.     exit mouseUp
  50.   end if
  51.   put it into SearchString
  52.  
  53.   if SearchString is "Date" then
  54.     --answer "Find the word 'Date' or Enter a Date?" with "Find Word" or "Enter"
  55.     put "Enter" into it
  56.  
  57.     if it is "Enter" then
  58.       put the short date into it
  59.       ask "Enter date you wish to find?   I.e. (0/0/00)" & Return & Return & "Today's Date is: " && the long date with it
  60.       if it is empty then exit mouseUp
  61.       put it into SearchString
  62.       answer "Search for  '" & SearchString & "'  in what format?" with "Seconds" or "Long Date" or "Short Date"
  63.       put it into DateType
  64.       if SearchString contains "T" then
  65.         put the short date into SearchString
  66.       end if
  67.       if DateType is "Seconds" then convert SearchString to Seconds
  68.       if DateType is "Long Date" then convert SearchString to Long Date
  69.       if DateType is "Short Date" then convert SearchString to Short Date
  70.     end if
  71.   end if
  72.  
  73.   put false into OncePerCard
  74.   if the OptionKey is down then
  75.     if LastField is not empty then
  76.       put LastField into ShortLastField
  77.       delete word 1 of ShortLastField
  78.       delete word 1 of ShortLastField
  79.       Answer "Search for information in what field?" with "Cancel" or ShortLastField or "Any Field"
  80.       if it is "Cancel" Then
  81.         exit mouseUp
  82.       end if
  83.       if it is ShortLastField then
  84.         put " in " & LastField into SearchLimit
  85.       else
  86.         put "" into SearchLimit
  87.       end if
  88.     end if
  89.     Answer "Find " & FindType & " '" & Searchstring & "'" with "Begins With" or "Full Word" or "These Chars"
  90.     if it is "Begins with" then put empty into FindType
  91.     if it is "Full Word" then put "Word" into FindType
  92.     if it is "These Chars" then put "Chars" into FindType
  93.     answer "Find string only one time per card?" with "1 per card" or "ALL"
  94.     if it is "1 per card" then put true into OncePerCard
  95.   end if    -- the optionKey segment
  96.  
  97.  
  98.   put "Find" && FindType && Quote & SearchString & Quote & SearchLimit into SearchCommands
  99.  
  100.   set loc of message box to 20,-50
  101.   put "Send DoSearch to" && SuperFindName into the message box
  102.   hide message box
  103.   set loc of message box to 20,300
  104.  
  105.   put the ID of this Card into OriginalID
  106.   put 0 into SearchTimesFound
  107.  
  108.   do message box
  109.  
  110. end mouseUp
  111.  
  112.  
  113.  
  114. on "DoSearch"
  115.   Global SuperFindName, SearchCommands, Searchstring, SearchStart
  116.   Global SearchTimesFound, FindType, LastCardID, ManyCards, OriginalID
  117.   Global OncePerCard
  118.  
  119.   if SearchTimesFound is 0 then
  120.     -- initialize variables
  121.     put False into ManyCards
  122.     put the ID of this card into LastCardID
  123.   end if
  124.  
  125.   if OncePerCard is true then go to next card
  126.   do SearchCommands
  127.  
  128.   if the result is "Not Found" then
  129.     beep
  130.     put 0 into SearchTimesFound
  131.     answer "Can't Find:" && FindType && "'" & SearchString & "'" with "Cancel" or "Re-Search"
  132.     if it is "Re-Search" then click at the loc of SuperFindName
  133.     exit "DoSearch"
  134.   end if
  135.  
  136.  
  137.   -- IF IT HAS GONE THIS FAR, AT LEAST ONE OCCOURANCE
  138.   -- HAS ALREADY BEEN FOUND!
  139.   if SearchTimesFound is 0 then
  140.     put the ID of this card into SearchStart
  141.     put the ID of this card into LastCardID
  142.   end if
  143.  
  144.   if the ID of this card is not LastCardID then
  145.     put True into ManyCards
  146.     put the ID of this card into LastCardID
  147.   end if
  148.  
  149.   if ManyCards is True and SearchTimesFound > 0 then
  150.     if the ID of this card is SearchStart then
  151.       beep
  152.       wait 60
  153.       if the ID of this card is not OriginalID then
  154.         answer SearchTimesFound && "Occourance(s) of" && FindType && "'" & SearchString & "'" with "Return" or "Cancel" or "Re-Search"
  155.       else
  156.         answer SearchTimesFound && "Occourance(s) of" && FindType && "'" & SearchString & "'" with "Cancel" or "Re-Search"
  157.       end if
  158.       if it is "Re-Search" then click at the loc of SuperFindName
  159.       if it is "Return" then go to OriginalID
  160.       put 0 into SearchTimesFound
  161.       exit "DoSearch"
  162.     end if
  163.   end if
  164.  
  165.   add 1 to SearchTimesFound
  166.  
  167. end "DoSearch"
  168.  
  169.  
  170. -- part 2 (field)
  171. -- low flags: 00
  172. -- high flags: 2002
  173. -- rect: left=278 top=89 right=164 bottom=501
  174. -- title width / last selected line: 0
  175. -- icon id / first selected line: 0 / 0
  176. -- text alignment: 0
  177. -- font id: 3
  178. -- text size: 12
  179. -- style flags: 0
  180. -- line height: 16
  181. -- part name: 
  182. ----- HyperTalk script -----
  183. on openField
  184.   -- use the openField command on unlocked fields
  185.  
  186.   Global LastField
  187.   put the name of the target into LastField
  188.  
  189. end openField
  190.  
  191.  
  192. -- part 3 (field)
  193. -- low flags: 01
  194. -- high flags: 2002
  195. -- rect: left=278 top=171 right=274 bottom=501
  196. -- title width / last selected line: 0
  197. -- icon id / first selected line: 0 / 0
  198. -- text alignment: 0
  199. -- font id: 3
  200. -- text size: 12
  201. -- style flags: 0
  202. -- line height: 16
  203. -- part name: 
  204. ----- HyperTalk script -----
  205. on mouseUp
  206.   -- use the mouseUp command on locked fields
  207.  
  208.   Global LastField
  209.   put the name of the target into LastField
  210.  
  211.   visual effect wipe down
  212.   go to this card
  213. end mouseUp
  214.  
  215.  
  216. -- part 5 (field)
  217. -- low flags: 01
  218. -- high flags: 0004
  219. -- rect: left=320 top=23 right=38 bottom=380
  220. -- title width / last selected line: 0
  221. -- icon id / first selected line: 0 / 0
  222. -- text alignment: 1
  223. -- font id: 3
  224. -- text size: 9
  225. -- style flags: 0
  226. -- line height: 12
  227. -- part name: See Script
  228. ----- HyperTalk script -----
  229. on mouseUp
  230.   edit script of card button ID 1
  231. end mouseUp
  232.  
  233.  
  234. -- part 6 (field)
  235. -- low flags: 01
  236. -- high flags: 0004
  237. -- rect: left=447 top=79 right=94 bottom=507
  238. -- title width / last selected line: 0
  239. -- icon id / first selected line: 0 / 0
  240. -- text alignment: 1
  241. -- font id: 3
  242. -- text size: 9
  243. -- style flags: 0
  244. -- line height: 12
  245. -- part name: See Script
  246. ----- HyperTalk script -----
  247. on mouseUp
  248.   edit script of card field ID 2
  249. end mouseUp
  250.  
  251.  
  252. -- part 7 (field)
  253. -- low flags: 01
  254. -- high flags: 0004
  255. -- rect: left=452 top=166 right=181 bottom=512
  256. -- title width / last selected line: 0
  257. -- icon id / first selected line: 0 / 0
  258. -- text alignment: 1
  259. -- font id: 3
  260. -- text size: 9
  261. -- style flags: 0
  262. -- line height: 12
  263. -- part name: See Script
  264. ----- HyperTalk script -----
  265. on mouseUp
  266.   edit script of card field ID 3
  267. end mouseUp
  268.  
  269.  
  270. -- part contents for background part 8
  271. ----- text -----
  272. Card 19 of 20
  273.  
  274. -- part contents for background part 9
  275. ----- text -----
  276. SUPERFIND BUTTON
  277. This find button is very powerful.  Once you click on it and enter your search criteria, to continue with the search simply hit the RETURN or ENTER button each time.  When it has shown all the cards that meet your search criteria, it will tell you it is finished and the number of occourances found.  It may even show a button titled 'Return' which will take you back to the card you started on when you first clicked the SuperFind button.
  278.  
  279. if you hilight some text (with the browsing tool) and then click the superFind button, it will put that string in for you.  If you enter the word DATE, you can find the word or a date in several different formats
  280.  
  281. OPTION KEY Limits
  282. If you hold the option key down while clicking OK you can be more specific.  And if you put the name of any background field into the global variable 'LastField', you can limit the search to that specific field.
  283.  
  284. -- part contents for card part 2
  285. ----- text -----
  286. Field 1.  The script of this field says to put the name of this field into the variable 'LastField', as soon as you click IN this field.
  287.  
  288. -- part contents for card part 3
  289. ----- text -----
  290. Field 2.  (A locked field).  The script of this field says to put the name of this field into the variable 'LastField', as soon as you click ON this field.
  291.  
  292. -- part contents for card part 5
  293. ----- text -----
  294. See Script
  295.  
  296. -- part contents for card part 6
  297. ----- text -----
  298. See Script
  299.  
  300. -- part contents for card part 7
  301. ----- text -----
  302. See Script